package com.lingxu.base.system.manage.service;

import com.lingxu.base.common.api.vo.Result;
import com.lingxu.base.system.manage.entity.SysUser;
import com.lingxu.base.system.manage.vo.LoginInfo;
import com.lingxu.base.system.manage.vo.LoginUser;

import java.util.List;
import java.util.Map;

public interface ILoginService {


    Result<LoginUser> checkStatus(SysUser sysUser);

    Result<LoginUser> checkPWDCorrect(String username, String password, SysUser sysUser);

    LoginInfo getLoginInfo(SysUser sysUser,String tokenId);

    SysUser getUserByName(String username,String flag);

    /*=============================================10分钟内登录密码错误5次锁定账号30分钟==============================*/
    /**
     * 用户在2分钟内 仅允许输入错误密码五次,如果超过次数,限制其登录一小时
     *
     * 给用户详细信息提示
     * @param user
     * @return
     */
    String loginValdata(SysUser user);

    /**
     * 判断当前的登录用户是否被限制登录
     * @param user
     * @return
     */
    Map<String,Object> loginUserLock(SysUser user);

    /**
     * 登录不成功的操作(密码错误)
     * @param user
     * @return
     */
    String loginValdate(SysUser user);

    /**
     * 删除登录失败所存入的键值对
     * @param key
     * @return
     */
    Boolean DeleteMemory(String key);

    /**
     * 重置密码
     * @param ids
     * @return
     */
    Result<?> resetPassword(List<String> ids);

    String getLoginName(String name);
    /*================================================10分钟内登录密码错误5次锁定账号30分钟==========================*/
}
